'''
Created on 03/09/2013

@author: daniel
'''
import colecciones.listaEnlazada
import colecciones.nodoGeneral
import unittest

class Propiedades(object):
    
    def __init__(self):
        self.__archivos=None
        self.__nombre=None
    def getNombre(self):
        return self.__nombre
    
    def setNombre(self,nombre):
        self.__nombre=nombre
    
    def getArchivos(self):
        return self.__archivos
    
    def setArchivos(self,lista):
        self.__archivos=lista
    
    

class Directorio(colecciones.nodoGeneral.NodoGeneral):
    '''
    classdocs
    '''
    def __init__(self,nombre):
        '''
        Constructor
        '''
        propiedades=Propiedades()
        propiedades.setArchivos(colecciones.listaEnlazada.ListaEnlazada())
        propiedades.setNombre(nombre)
        colecciones.nodoGeneral.NodoGeneral.__init__(self,propiedades)
    
    def getNombre(self):
        return self.getDato().getNombre()
    
    def setNombre(self,nombre):
        self.getDato().setNombre(nombre)
    
    def getArchivos(self):
        return self.getDato().getArchivos()
    
    def setArchivos(self,lista):
        self.getDato().setArchivos(lista)
        
class Test(unittest.TestCase):

    def testInit(self):
        self.assertIsInstance(Directorio(None), Directorio, "testea creaciona de nodo")

    def testGetDato(self):
        first=Directorio(23)
        first.setDato(23)
        self.assertEquals(first.getDato(), 23,"Verifica que entregue el objeto")

    def testSetDato(self):
        first=Directorio(None)
        first.setDato(23)
        self.assertIsNotNone(first.nodo.objeto,"Verifica que el objeto si esta")

    def testSetHijos(self):
        first=Directorio(23)
        self.assertTrue(first.nodo.link.esVacia(), "Verifica que el objeto no esta")
        first.setHijos(23)
        self.assertIsNotNone(first.nodo.link,"Verifica que el objeto si esta")

    def testGetHijos(self):
        first=Directorio(23)
        first.setHijos(23)
        self.assertEquals(first.getHijos(),23,"Verifica que entregue el objeto")

    def testGetNombre(self):
        first=Directorio("a")
        self.assertEquals(first.getNombre(),"a","Verifica devolucion del nombre del directorio")

    def testSetNombre(self):
        first=Directorio("a")
        first.setNombre("nombre")
        self.assertEquals(first.getNombre(),"nombre","Verifica cambio del nombre del directorio")

    def testGetArchivos(self):
        first=Directorio("a")
        self.assertEquals(first.getArchivos(),first.nodo.objeto.getArchivos(),"Verifica devolucion del __nombre del directorio")

    def testSetArchivos(self):
        first=Directorio("a")
        first.setArchivos("lista")
        self.assertEquals(first.getArchivos(),"lista","Verifica devolucion del __nombre del directorio")

        
if __name__ == "__main__":
    #import sys;sys.argv = ['', 'Test.testName']
    unittest.main()